1.7 协议层次与服务模型

我们采用 分层 的方法完成计算机复杂功能的实现。具体而言,我们将网络复杂的功能分层为明确的 层次,每一层实现一个或一组功能。

在这样的一个层次结构中,每一层通过 协议 以在 对等层 的实体中交换信息,通过协议规定的动作实现本层的功能,以通过 层间接口 向上层提供 服务。与此同时,每一层也需要调用下层的服务来实现本层的功能。

由此可见,每一层都通过协议实现本层实体间的交互;与调用下层提供的服务实现新功能,并以此向上层提供服务。每一层可以的功能既包括下层可以实现的所有功能,又包含本层实现的新功能。

为了更好地对服务的概念进行说明,我们引入一些术语:

服务分为面向连接的服务与无连接的服务,在传输层会详细讲解。

服务与协议既有区别又有联系:

数据在层间进行传递时,各层处于不同的需要会对数据做处理:

上层的实体为了与其他实体进行通信,会产生 服务数据单元(Server Data Unit,SDU),通过 SAP 传送到当层。当层在 SDU 的基础上添加上自己的 接口控制信息(Interface Control Information,ICI),从而得到了本层的 协议数据单元(Protocol Data Unit,PDU)。协议数据单元指的是在同一协议层之间交换的数据单元。本层得到 PDU 后,再通过本层到下层的 SAP 传给下一层。下一层仿照上述做法对数据做处理,各层做类似的事情后最终数据传送到物理层由物理层进行物理意义上的数据传输。

当然,某一层传下来的 SDU 可能过大或过小,本层可能会依据协议将数据单元切成多个小块或多个小块拼成大块后发送。

总而言之,各层对数据单元的处理如下图所示:

Pasted image 20250319114205.png

实际的计算机网络各层对数据单元的称呼不同:

接下来我们来详细介绍一下互联网的 协议栈(Protocol Stack)

层次名 功能 典型协议
应用层 网络应用 HTTP、SMTP、FTP、DNS
传输层 主机之中,进程之间的数据传输 TCP、UDP
网络层 主机之间的数据传输 IP、路由协议
链路层 相邻网络节点之间的数据传输 PPP、WiFi、以太网
物理层 在链路上传输 bit -

至此,我们可以刻画出计算机网络通信时具体发生了什么了:

动画演示这个传递过程:

Todo